from main.extensions import db
from werkzeug.security import generate_password_hash, check_password_hash#密码验证
from flask_login import UserMixin
from models import _File,Admin
#工程项目管理类

class TaskFile(_File):
    batch=db.Column(db.Integer)#任务批次
    proid=db.Column(db.String(60))#所属项目编号

class Pic(TaskFile):#图片模型
    pos=db.Column(db.String(60))#图片位置（经纬度，以,隔开）

class Video(TaskFile):#视频模型
    a=1
    
class Project(db.Model):#项目模型
    id=db.Column(db.Integer,primary_key=True)
    uid=db.Column(db.String(128))#项目唯一值
    name=db.Column(db.String(128))#项目名称
    dbconfig=db.Column(db.String(128))#项目数据库连接字符串
    tasks=db.relationship('Task')#该项目的任务成果
    manager_id=db.Column(db.Integer,db.ForeignKey('projectadmin.id'))#外接用户表
class Task(db.Model):#任务模型
    id=db.Column(db.Integer,primary_key=True)
    name=db.Column(db.String(128))#任务名称
    project_id=db.Column(db.Integer,db.ForeignKey('projectadmin.id'))#外接project
    uid=db.Column(db.String(128),unique=True)#任务唯一值
    batch=db.Column(db.Integer)#任务批次
    ttype=db.Column(db.String(100))#任务类型
    status=db.Column(db.String(10),default="已完成")#任务完成状况
    publisher=db.Column(db.String(100))#任务发布者
    contact=db.Column(db.String(60))#联系方式
    nature=db.Column(db.String(60))#任务性质
    cost=db.Column(db.Float)#任务花费
    start_time=db.Column(db.DateTime)
class ProjectAdmin(Admin):#管理项目的用户
    projects=db.relationship('Project')#用户管理的项目